#include <iostream>

// 构造函数的隐式转换：类的对象在遇到满足构造函数的参数时会将它自动变为构造一个临时对象
//  explicit :防止隐式转换               
class Integer
{
public:
    explicit Integer(int a)
    {
        m_a = a;
    }
    void show()
    {
        std::cout << m_a << std::endl;
    }
    void operator=(const Integer &t)
    {
        std::cout << "赋值运算符的重载！\n";
    }
private:
   int m_a;
};

int main()
{
    Integer a(10);
    // a = 20; // 相当于 a = Integer(20);  会调用赋值运算符重载
    a.show();
}
